ÀÌ ¼½¼ÇÀº IntelliJ IDEA¿¡¼ JUnit ¿Í ÇÔ²² ÀÛ¾÷ÇÏ´Â ¸Þ¼Òµå¸¦ ±â¼úÇÕ´Ï´Ù. ÇöÀç IDEA´Â JUnit 3.8.1°ú ÇÔ²² ¼±ÀûµË´Ï´Ù.
JUnit¿¡ ´ëÇÑ ´õ ¸¹Àº ¼¼ºÎ»çÇ×À» À§ÇØ, http://www.junit.org ¸¦ ÂüÁ¶ÇϽʽÿÀ.
JUnit´Â ȸ±Í Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÔ´Ï´Ù.
JUnit¸¦ »ç¿ëÇÏ´Â º¸ÅëÀÇ ¸Þ¼Òµå´Â Å×½ºÆ® ¾ç½ÄÀ» »ý¼ºÇÕ´Ï´Ù. Å×½ºÆ® ¾ç½ÄÀ» »ý¼ºÇϱâ À§ÇØ ´ç½ÅÀº TestCase Ŭ·¡½º¸¦ È®ÀåÇϰí
ÀÖ´Â ¼ºê Ŭ·¡½º¸¦ »ý¼ºÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¶ÇÇÑ ´ç½ÅÀº ±×µéÀÇ À̸§ (¿¹¸¦ µé¸é, testSomething )¿¡¼ test ¿Í ÇÔ²² ½ÃÀ۵ǴÂ
Ŭ·¡½º¿¡ ¸Þ¼Òµå¸¦ Ãß°¡ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î¼ Å×½ºÆ®¸¦ ½ÇÇàÇϱâ À§ÇØ, Ŭ·¡½º¿¡ ÀÖ¾î¼ÀÇ ´ÙÀ½ ÁÖ¿äÇÑ ¸Þ¼Òµå¸¦ »ç¿ëÇϽʽÿÀ:
public static void main(String[] args) {
new junit.textui.TestRunner().doRun( new TestSuite(<testClassName> .class ));
}
¶Ç ´Ù¸¥ ¹æ¹ýÀº Ŭ·¡½º¿¡¼ public
static Test suite() ¸Þ¼Òµå (Test ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ À¯·¡ÇÑ ¾î¶² Ŭ·¡½º/ÀÎÅÍÆäÀ̽º¸¦
´ç½ÅÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸®ÅÏ ÇüÅ·μ)¸¦ »ý¼ºÇÕ´Ï´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î¼ Å×½ºÆ®¸¦ ½ÇÇàÇϱâ À§ÇØ, Ŭ·¡½º¿¡ ÀÖ¾î¼ÀÇ ´ÙÀ½ ÁÖ¿äÇÑ ¸Þ¼Òµå¸¦ »ç¿ëÇϽʽÿÀ:
public static void main(String[] args) {
new junit.textui.TestRunner().doRun(suite());
}
ù ¹øÂ°·Î, ´ç½ÅÀº JUnit ½ÇÇà/µð¹ö±× ±¸¼ºÀ» »ý¼ºÇϰí, Á¶Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
»ó¼¼ÇÑ °ÍÀº, Run | Edit Configurations:
Run/Debug Configurations: JUnitÀ» º¸½Ê½Ã¿À.
´ç½ÅÀº ÆÐŰÁö, Ŭ·¡½º¿Í º°µµ ¸Þ¼Òµå¿¡ ´ëÇÑ JUnit
Å×½ºÆ®¸¦ ½ÃÀÛÇÒ ¸î °³ÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
Toolbar·ÎºÎÅÍ:
Edit Entries... ¸Þ´º¿¡¼ Àû´çÇÑ JUnit ±¸¼ºÀ» ¼±ÅÃÇÏ°í ½ÇÇà/µð¹ö±ëÀ» ½ÃÀÛÇÕ´Ï´Ù.

¶ÇÇÑ IDEA¿¡¼ ´ç½ÅÀº ÆË¾÷ ¸Þ´º¸¦ »ç¿ëÇÏ¿© JUnit Å×½ºÆÃÀ» ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.
editor ¿¡¼ :
±×°ÍÀ» Å×½ºÆ®Çϴ Ŭ·¡½º ³»ÀÇ ¶Ç´Â ÀÌ ¸Þ¼Òµå¸¸À» Å×½ºÆ®ÇÏ´Â ¸Þ¼Òµå ³»ÀÇ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇϽʽÿÀ.


|
Àüü Ŭ·¡½º¸¦ Å×½ºÆ®Çϱâ À§ÇØ, ¸Þ¼Òµå º¸µð ¹Û¿¡ ij·µÀ» ³õÀ¸½Ê½Ã¿À.
|

|
¸¸ÀÏ ´ç½ÅÀÌ main() º¸µð ³»ºÎ¿¡ ij·µÀ» ³õÀ¸¸é Å×½ºÆ®ÇÏ´Â °ÍÀÌ ¾Æ´Ñ ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà/µð¹ö±× ±¸¼ºÀ»
»ý¼ºÇÒ °Í ÀÔ´Ï´Ù.
|
³ªÅ¸³ª´Â ¹®¸Æ ¸Þ´º´Â Ŭ·¡½º ¶Ç´Â ¸Þ¼Òµå¸¦ À§ÇÑ JUnit
Å×½ºÆ®¸¦ ¼öÇàÇÏ´Â °ÍÀ» Á¦¾ÈÇÕ´Ï´Ù.
Project
View ( Project Tab, Packages
Tab ) ¿Í Commander ·ÎºÎÅÍ :
Å×½ºÆ® ¹üÀ§¸¦ Á¦ÇÑÇϴ Ŭ·¡½º ¶Ç´Â ¸Þ¼Òµå(Show
Members °¡ onÀÏ ¶§ Project
Tab¶Ç´Â Packages Tab¿¡¼),
±×°ÍÀ» Å×½ºÆ® Çϱâ À§Çؼ ÆÐŰÁö¸¦ ¿À¸¥ÂÊ ¹öư Ŭ¸¯ÇϽʽÿÀ.

³ªÅ¸³ª´Â ¹®¸Æ ¸Þ´º´Â ÆÐŰÁö/Ŭ·¡½º/¸Þ¼Òµå¸¦ À§ÇÑ JUnit Å×½ºÆ®¸¦ ¼öÇàÇÏ´Â °ÍÀ» Á¦¾ÈÇÕ´Ï´Ù.
JUnit ¹®¸Æ ¸Þ´º Ç׸ñÀÇ ¿Ü°ü°ú ±â´ÉÀº ¸î °¡ÁöÀÇ ¿ä¼Ò¿¡ ´Þ·Á ÀÖ½À´Ï´Ù.
ù ¹øÂ°·Î, JUnit Run/Debug ±¸¼ºÀÌ ¼±ÅÃµÈ ÆÐŰÁö/Ŭ·¡½º/¸Þ¼Òµå¸¦ À§ÇØ ÀÖ´ÂÁö´Â Áß¿äÇÕ´Ï´Ù.
µÎ ¹øÂ°·Î, ±×°ÍÀº ÀϽÃÀûÀÏ ¼ö Àְųª ¿µ¿øÇÒ ¼ö ÀÖ´Â ±¸¼º ŸÀÔ¿¡ ÀÇÁ¸ÇÕ´Ï´Ù.
¿µ±¸ÀûÀÎ ±¸¼ºÀº Ưº°ÇÑ ÆÐŰÁö/¸Þ¼Òµå/Ŭ·¡½º¸¦ À§ÇØ ¸í¹éÈ÷ »ý¼ºµÈ ±¸¼ºÀÔ´Ï´Ù.
±×·¯³ª ¸¸ÀÏ ¾î¶² ±×µéÀ» À§ÇÑ ¿µ±¸ÀûÀÎ ±¸¼ºÀÌ ¾ø´Ù¸é, ´ç½ÅÀÌ Run ¶Ç´Â Debug¸¦ ¼±ÅÃÇÒ ¶§ ÀϽÃÀûÀÎ Çϳª´Â
ÀÚµ¿ÀûÀ¸·Î »ý¼ºµË´Ï´Ù.

|
ÀϽÃÀûÀÎ Run/Debug ±¸¼ºÀº ¾ÖÇø®ÄÉÀ̼ǰú ¾ÖÇø´À» À§ÇØ ¶ÇÇÑ »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
|
ÀϽÃÀûÀÎ ±¸¼ºÀº ±âÁ¸ Run/Debug ±¸¼º Áß¿¡¼ º¸¿©Áö°í ºñ½ÁÇÏ°Ô °ü¸®µË´Ï´Ù. ±×·¯³ª ´ÜÁö ÇϳªÀÇ ÀϽÃÀûÀÎ ±¸¼ºÀÌ Á¸ÀçÇÒ ¼ö
ÀÖ½À´Ï´Ù. ´ç½ÅÀÌ ¿µ±¸ÀûÀÎ ±¸¼º ¾øÀÌ ÆÐŰÁö/Ŭ·¡½º/¸Þ¼Òµå¸¦ À§ÇØ ½ÇÇà ¶Ç´Â µð¹ö±×¸¦ ¼±ÅÃÇÒ ¶§¸¶´Ù »õ·Ó°Ô »ý¼ºµÈ ÀϽÃÀûÀÎ
±¸¼ºÀº ¿À·¡µÈ ÀÓ½ÃÀûÀÎ °ÍÀ» ±³Ã¼ÇÒ °ÍÀÔ´Ï´Ù.
Run "JUnit
configuration"
|
±âÁ¸ ¿µ±¸ÀûÀÎ/ÀϽÃÀûÀÎ JUnit Run/Debug ±¸¼ºÀ» ¼öÇàÇϰųª ±×°ÍÀ» ½ÇÇàÇϱâ
À§ÇØ ÀÓ½ÃÀûÀÎ ±¸¼ºÀ» »ý¼ºÇϽʽÿÀ.
|
Debug
"JUnit
configuration"
|
±âÁ¸ ¿µ±¸ÀûÀÎ/ÀϽÃÀûÀÎ JUnit Run/Debug ±¸¼ºÀ» µð¹ö±×Çϰųª ÀÓ½ÃÀûÀÎ ±¸¼ºÀ»
»ý¼ºÇÏ°í ±× µð¹ö±ëÀ» ½ÃÀÛÇϽʽÿÀ.
|
JUnit Å×½ºÆ® °á°ú´Â Run ¶Ç´Â Debug Åø À©µµ¿ìÀÇ Console ÅÇ¿¡¼ Á¦°øµË´Ï´Ù.

Åø À©µµ¿ì´Â ´ÙÀ½ÀÇ ±¸¼º ¿ä¼Ò·Î ±¸¼ºµË´Ï´Ù:
Test tree view, Output °ú Statistics ÅÇ ±×¸®°í µÎ °³ÀÇ Åø¹Ù.
Test tree view ´Â Æ®¸®¿Í °°Àº °èÃþÀ¸·Î¼ ¸ðµç ÇöÀç ½ÇÇàµÈ Å×½ºÆ®¸¦ Á¦°øÇÕ´Ï´Ù. Æ®¸® ³ëµå À̸§Àº Ŭ·¡½º/¸Þ¼Òµå À̸§À»
Å×½ºÆ®Çϱâ À§ÇØ ÀÏÄ¡ÇÕ´Ï´Ù. Å×½ºÆ® ¸Þ¼Òµå¸¦ À§ÇØ ÃæºÐÈ÷ ÀÚ°ÝÀÌ ÁÖ¾îÁö´Â Ŭ·¡½º À̸§Àº Æ®¸® ³ëµå À̸§ÀÇ ¿·¿¡ Å« °ýÈ£¿¡
ÁÖ¾îÁý´Ï´Ù. Å×½ºÆ® Ŭ·¡½º¸¦ À§ÇØ, ÆÐŰÁö¸í, Ŭ·¡½º°¡ À§Ä¡ÇÏ´Â °÷ÀÌ ½áÁý´Ï´Ù.
³ëµå ¿·ÀÇ ¾ÆÀÌÄÜÀº ±× »óŸ¦ ¹Ý¿µÇÕ´Ï´Ù:

|
Å×½ºÆ®´Â ¼º°øÀûÀ¸·Î Åë°úÇß½À´Ï´Ù.
|

|
Å×½ºÆ®´Â Ç¥¸í ¶Ç´Â ¿¹¿Ü ¶§¹®¿¡ ½ÇÆÐÇß½À´Ï´Ù.
|

|
Å×½ºÆ®´Â ¿À·ù ¶§¹®¿¡ ½ÇÆÐÇß½À´Ï´Ù.
|

|
Å×½ºÆ®´Â ½ÇÇàÇÏÁö ¾Ê¾Ò½À´Ï´Ù.
|

|
Å×½ºÆ®´Â Á¤ÁöµË´Ï´Ù.
|

|
Å×½ºÆ®´Â ÇöÀç ½ÇÇàÇϰí ÀÖ½À´Ï´Ù.
|

|
Å×½ºÆ®´Â ÁߴܵǾú½À´Ï´Ù.
|
·çÆ® ³ëµå´Â ´ÙÀ½ ¿ì¼± ¼øÀ§¿Í ÇÔ²² ÀÚ½Ä ³ëµåÀÇ "°¡Àå ³ª»Û" °á°ú¿¡ ºÎÇÕÇϰí ÀÖ´Â »óÅ ¾ÆÀÌÄÜÀ» Ç¥½ÃÇÕ´Ï´Ù:
passed - not
run - running - interrupted
- assertion failure - exception
failure.
º¸Åë Å×½ºÆ® Ŭ·¡½º´Â TestCase Ŭ·¡½º¸¦ È®ÀåÇϰí Å×½ºÆ® ¸Þ¼Òµå À̸§Àº test ´Ü¾î·Î ½ÃÀ۵˴ϴÙ. ±×·¯³ª, ¶§¶§·Î ¸î °³ÀÇ Å×½ºÆ®
ÄÉÀ̽º°¡ »ç¿ëµÇ´Â °÷¿¡ Á¤ÀûÀÎ ¸Þ¼Òµå suite() °¡ ½ÇÇàµË´Ï´Ù. ±×°ÍÀº Á¶±ÝÀÇ Æ¯Á¤ÀÇ Å¬·¡½º ÀνºÅϽºµµ °ü·ÃµÇÁö ¾Ê´Â ÇÑ ¼¼Æ®ÀÇ
Å×½ºÆ®¸¦ Çü¼ºÇϰí, °¢ Å×½ºÆ®°¡ ¾Æ´Ï¶ó ÀÏ´ÜÀÇ Å×½ºÆ®¸¦ °³º°ÀûÀ¸·Î °³½ÃÇÒ °Í ÀÔ´Ï´Ù.
IDEA´Â Å×½ºÆ® Ŭ·¡½º·Î ºÐ·ùµÈ Å×½ºÆ® ¸Þ¼Òµå¸¦ Á¤È®ÇÏ°Ô Ç¥½ÃÇϰí suite() ´Â Àڽİú ÇÔ²² ³ëµå·Î¼ Result tree view ¿¡¼
³ªÅ¸³³´Ï´Ù. ÀÚ½Ä ³ëµå´Â suite() ³»ÀÇ Å×½ºÆ®ÀÔ´Ï´Ù.
¸¸ÀÏ ´ç½ÅÀÌ Hide
Passed ÇÊÅͰ¡ °¡´ÉÇÏ°í ¸ðµç Å×½ºÆ®°¡ Ưº° ³ëµå¸¦ Åë°úµÇ¸é, All
Tests Passed ´Â Å×½ºÆ® ½ÇÇàÀÇ ÃÖÁ¾¿¡
³ªÅ¸³³´Ï´Ù.

¸¸ÀÏ Output ÅÇÀÌ ¿¸®¸é, Æ®¸® º¸±â¿¡¼ ¿ä¼Ò¸¦ ¼±ÅÃÇÏ´Â °ÍÀº °Á¶µÈ Å×½ºÆ®¿¡ ÀÇÇØ »ý»êµÈ Ãâ·ÂÀ» Ç¥½ÃÇÕ´Ï´Ù.
±×¸®°í ¸¸ÀÏ Statistics ÅÇÀÌ ¿¸®¸é, ÅÇÀÇ »óÀÀÇÏ´Â ¶óÀÎÀº °Á¶µÉ °ÍÀÔ´Ï´Ù.

|
ÇöÀçÀÇ JUnit ±¸¼ºÀ» Àç½ÇÇà ÇϽʽÿÀ.
|

|
ÇÁ·Î¼¼½º Ãâ·ÂÀ» ÁßÁöÇϽʽÿÀ.
|

|
ÇöÀçÀÇ JUnit ÇÁ·Î¼¼½º¸¦ Á¾·áÇϽʽÿÀ.
|

|
°á°ú Åø À©µµ¿ì¸¦ ´ÝÀ¸½Ê½Ã¿À.
|

|
ÇïÇÁ ÆäÀÌÁö¸¦ ¿±´Ï´Ù.
|
|

|
Hide passed ¸Þ´º´Â Åë°úÇÑ Å×½ºÆ®¿¡ »óÀÀÇÏ´Â ³ëµå¸¦ ¼û±â±â À§ÇØ µðÀÚÀε˴ϴÙ.
¸ðµç ½ÇÇà Å×½ºÆ®°¡ ¼º°øÀûÀ¸·Î Åë°úµÇ°í, »õ·Î¿î ³ëµå Ç׸ñ, All Tests
Passed Àüü Æ®¸®¸¦ ġȯÇÏ¸é¼ ³ªÅ¸³³´Ï´Ù.
|

|
¸¸ÀÏ ´¸®¸é Track Running Test ¹öư ÇöÀç ½ÇÇàµÇ´Â ³ëµå·Î Æ®¸® ¼±ÅÃÀ» À̵¿ÇÕ´Ï´Ù. ±×¸®°í µ¿½Ã¿¡
±× Ãâ·ÂÀ» Output tab¿¡¼ º¸ÀÔ´Ï´Ù.
|

|
³ëµå Æ®¸®¸¦ È®Àå½ÃŰ½Ê½Ã¿À.
´ÜÁö µÎ ¹øÂ° ·¹º§ ºÐ±â°¡ ¿µÇâÀ» ¹Þ½À´Ï´Ù.
|

|
³ëµå Æ®¸®¸¦ Ãà¼Ò½ÃŰ½Ê½Ã¿À.
´ÜÁö µÎ ¹øÂ° ·¹º§ ºÐ±â´Â ¿µÇâÀ» ¹Þ½À´Ï´Ù. ±×·¯³ª, ·çÆ® ³ëµå´Â ´ÜÁö ÇÊ¿äÇÑ ³ëµå¸¦
´õºí Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ Ãà¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
|

|
Æ®¸® º¸±â¿¡¼ ÀÌÀüÀÇ ½ÇÆÐÇÑ Å×½ºÆ®·Î ³×ºñ°ÔÀÌÆ® ÇϽʽÿÀ.
|

|
Æ®¸® º¸±â¿¡¼ ´ÙÀ½ÀÇ ½ÇÆÐÇÑ Å×½ºÆ®·Î ³×ºñ°ÔÀÌÆ® ÇϽʽÿÀ.
|

|
¸¸ÀÏ Select
First Failed Test When Finished °¡ ´¸®¸é, ij·µÀº Æ®¸® º¸±â¿¡ ÃÖ°íÀÇ ½ÇÆÐÇÑ Å×½ºÆ®ÀÇ ÂÊÀ¸·Î
ÀÚµ¿ÀûÀ¸·Î ¿Å°ÜÁý´Ï´Ù ¶ÇÇÑ ±× Ãâ·ÂÀº Output
tab ¿¡¼ Ç¥½ÃµË´Ï´Ù.
|

|
¸¸ÀÏ Scrolls
to Stacktrace°¡ ´¸®¸é, Output
tab ¿¡¼ Å×½ºÆ® ½ÇÆÐ¸¦ ¾ß±âÇÑ °ÍÀ» À§ÇÏ¿© ¿¹¿Ü/Ç¥¸í ½ºÅà ÃßÀûÀÇ
½ÃÀÛÀ¸·Î ½ºÅà Ãßô Ãâ·ÂÀ» ½ºÅ©·Ñ ÇÕ´Ï´Ù.
|

|
¸¸ÀÏ Autoscroll to Source °¡ ´¸®¸é, Test
tree view ¿¡¼ Å×½ºÆ®¸¦ ¼±ÅÃÇÏ¸é ¿¡µðÅÍ¿¡¼ ¼Ò½ºÆÄÀÏ (ÇÊ¿äÇÏ´Ù¸é
±×°ÍÀ» ¿¸é¼)·Î ³×ºñ°ÔÀÌÆ®ÇÕ´Ï´Ù. ¿¡µðÅÍ¿¡¼ Å×½ºÆ®ÀÇ Ã¹ ¹øÂ° ¶óÀÎ À§¿¡¼ ij·µÀ» ¹èÄ¡Çß½À´Ï´Ù.
|

|
¸¸ÀÏ Open
Source at Exception °¡ ´¸®¸é, ¿¸®´Â ¼Ò½º ÄÚµå (View
source, Edit source, Autoscroll to
source)°¡ ½ÇÆÐÇÑ Äڵ尡 ºÒ·ÁÁ³´ø Å×½ºÆ® ¸Þ¼Òµå ¶óÀο¡ ij·µÀ» ³õ½À´Ï´Ù (°°Àº È¿°ú´Â ½ºÅà ÃßÀû¿¡¼ Å×½ºÆ® ¸Þ¼Òµå
¶óÀÎÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ´Þ¼ºµÉ ¼ö ÀÖ½À´Ï´Ù).
|
|
Test Status ÆÐ³ÎÀº Å×½ºÆ® »óȲ Output ¿Í Statistics À§¿¡ À§Ä¡ÇÕ´Ï´Ù.

±×°ÍÀº ÇöÀçÀÇ Å×½ºÆ® ±¸¼ºÀ» À§ÇØ »óŸ¦ ¹Ý¿µÇÕ´Ï´Ù:
Starting
|
°úÁ¤ÀÌ Å×½ºÆ®¿¡¼ Á¶±Ýµµ ½ÃÀÛµÇÁö ¾Ê¾Ò´ø Å×½ºÆ®°¡ ÀÖ¾ú´ø ¶§¸¦ Ç¥½ÃÇßÁö¸¸ ½ÃÀÛÇß½À´Ï´Ù.
|
Running
|
Å×½ºÆ®°¡ ½ÇÇàµÈ ¶§¸¦ Ç¥½ÃÇß½À´Ï´Ù. µ¿½Ã¿¡ µÎ ±×¸²ÀÌ ÁÖ¾îÁý´Ï´Ù. ù ¹øÂ°´Â ¾ó¸¶³ª ¸¹Àº Å×½ºÆ®°¡ ÀÌ¹Ì ¼öÇàµÇ¾ú´Â°¡¸¦ º¸¿©ÁÖ°í µÎ ¹øÂ°´Â Å×½ºÆ®ÀÇ Àüü ¼ýÀÚÀÔ´Ï´Ù.
¸¹Àº Å×½ºÆ®°¡ ¹ú½á Á¸ÀçÇß´ø ù¹øÂ° Ç¥½Ã°¡ ¼öÇàµÇ¸é¼, ÃÊ´Â Å×½ºÆ®ÀÇ ÇÕ°è¼öÀÔ´Ï´Ù.
¸¸ÀÏ ¾î¶² ½ÇÆÐÇÑ Å×½ºÆ®°¡ ÀÖÀ¸¸é, ½ÇÆÐÇÑ Å×½ºÆ®ÀÇ ÃѰ踦 ¶ÇÇÑ Ç¥½ÃÇÏ´Â Failed ·¹À̺í°ú ÇÔ²² Ç¥½ÃµË´Ï´Ù. ÇöÀç ½ÇÇàÇϰí ÀÖ´Â Å×½ºÆ®ÀÇ À̸§ÀÌ ¶ÇÇÑ Ç¥½ÃµË´Ï´Ù.
|
Terminated
|
¸¸ÀÏ Å×½ºÆ® ½ÇÇàÀÌ »ç¿ëÀÚ¿¡ ÀÇÇØ ÁߴܵǸé Ç¥½ÃµË´Ï´Ù. ±×¸²Àº Running¿¡ °üÇØ¼´Â °°Àº °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
|
Done
|
¸ðµç Å×½ºÆ®°¡ ½ÇÇàµÇ¾ú´ø ¶§¸¦ Ç¥½ÃÇß½À´Ï´Ù. ±×¸²Àº Running
·¹ÀÌºí °üÇØ¼´Â °°Àº °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ¶ÇÇÑ ÅäÅÐ ½Ã°£À» ¸ðµç Å×½ºÆ®¿¡ ÇÕ°ÝÇϱâ À§ÇØ Ç¥½ÃÇÏ´Â ¶Ç ´Ù¸¥ ·¹À̺íÀÌ ³ªÅ¸³³´Ï´Ù.
|
Progress Bar ´Â ¾ó¸¶³ª ¸¹Àº Å×½ºÆ®°¡ µÇ¾ú´ø°¡¸¦ Ç¥½ÃÇÕ´Ï´Ù. ±×°ÍÀº ´ÙÀ½ »öÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù:
Green
|
¸¸ÀÏ ¸ðµç ¼öÇàµÈ Å×½ºÆ®°¡ ÁÁ°Ô Åë°úµÇ¾ú´Ù¸é (Å×½ºÆ®ÀÇ ¾î´Â °Íµµ ½ÇÆÐÇÏÁö ¾Ê¾Ò´Ù¸é)
|
Yellow
|
¸¸ÀÏ Å×½ºÆ® ½ÇÇàÀÌ »ç¿ëÀÚ¿¡ À§ÇØ Áߴܵǰí ÀÌ¹Ì ¼öÇàµÈ Å×½ºÆ®ÀÇ ¾î´À °Íµµ ½ÇÇØÇÏÁö ¾Ê¾ÒÀ¸¸é.
|
Red
|
¸¸ÀÏ ½ÇÆÐÇÑ Å×½ºÆ®°¡ ÀÖÀ¸¸é.
|
|
Output tab Àº Å×½ºÆ® ½ÇÇà µ¿¾È »ý¼ºµÈ Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ·çÆ® ³ëµå°¡ Test tree view¿¡¼ ¼±ÅÃµÉ ¶§, ÅÇÀº ¿À·ù ¸Þ½ÃÁö
»Ó¸¸ ¾Æ´Ï¶ó ¸í·É ¶óÀÎ, ¸ðµç Å×½ºÆ®ÀÇ Ãâ·ÂÀ» Ç¥½ÃÇÕ´Ï´Ù. ±×¸®°í ¸¸ÀÏ ¾î¶² ´Ù¸¥ ³ëµå°¡ ¼±ÅõǸé, ¿ÀÁ÷ ¼±ÅÃµÈ ³ëµå¿¡ ´ëÇÑ
Ãâ·Â°ú ¿À·ù ¸Þ½ÃÁö¿Í ±× ÀÚ½ÄÀº º¸¿©Áý´Ï´Ù. °¢ ¿À·ù´Â ¸µÅ©¸¦ µ¿¹ÝÇÕ´Ï´Ù.
±×°ÍÀ» Ŭ¸¯ÇÏ¸é ´ç½ÅÀº ¿¡µðÅÍ¿¡¼ ij·µÀ» ¼³Á¤ÇÏ´Â »óÀÀÇÏ´Â ¶óÀο¡ ³×ºñ°ÔÀÌÆ®ÇÕ´Ï´Ù.

¹®ÀÚ¿ ºñ±³ ÈÄÀÇ Ç¥¸íÀÌ ¹ß»ýÇÒ ¶§, Ãâ·ÂÀº ¾à°£ ´Ù¸¨´Ï´Ù. ½Ì±Û ¶óÀÎÀÇ ¹®ÀÚ¿ÀÌ ºñ±³µÉ ¶§, ¹®ÀÚ´Â Ãâ·Â ¸Þ½ÃÁö¿¡¼ Á¤·ÄµË´Ï´Ù.

¸ÖƼ¶óÀÎ ¹®ÀÚ¿(Áï "\nÀ» Æ÷ÇÔÇÏ´Â ±×°Íµé)ÀÌ ÀÖÀ» ¶§, Ãâ·ÂÀº ¸µÅ©¸¦ Æ÷ÇÔÇÕ´Ï´Ù. ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é ¹®ÀÚ¿ »çÀÌ¿¡¼ Â÷À̸¦ º¸±â
À§ÇÏ¿© Difference
View¸¦ ºÎ¸¨´Ï´Ù.

Statistics ÅÇÀº ÇöÀçÀÇ ½ÇÇà/µð¹ö±× ±¸¼ºÀ» À§ÇØ ¿©·¯ °¡Áö Åë°è µ¥ÀÌÅ͸¦ Ç¥½ÃÇÕ´Ï´Ù.

Test
|
½ÇÇàµÇ¾ú´ø ¸ðµç Å×½ºÆ®¸¦ À§ÇØ Çհ踦 Ç¥½ÃÇϴ ù ¹øÂ° ¶óÀÎÀ» Á¦¿ÜÇϰí ÀÌ ¼½¼ÇÀº Å×½ºÆ®¸íÀ» Ç¥½ÃÇÕ´Ï´Ù.
|
Time elapsed
|
Å×½ºÆ®¸¦ ½ÇÇàÇϱâ À§ÇØ °æ°úÇÑ ½Ã°£.
Total °ªÀº ¸ðµç Å×½ºÆ®ÀÇ ÇÕ°è ½Ã°£ÀÔ´Ï´Ù.
|
Usage Before
|
Å×½ºÆ®¸¦ ½ÇÇàÇϱâ ÀüÀÇ RAM »ç¿ë.
|
Usage Delta
|
Å×½ºÆ®¸¦ ½ÇÇàÇϱâ ÀüÈÄÀÇ RAM »ç¿ëÀÇ Â÷ÀÌ.
°ªÀÌ (RAM-after-test - RAM-before-test)·Î °è»êµË´Ï´Ù.
¿¹¸¦ µé¸é, ¸¸ÀÏ gc °¡ Å×½ºÆ® ½ÇÇà µ¿¾È Âø¼öµÇ¸é, µ¨Å¸ °ªÀº ³×°ÅƼºêÀÏ ¼ö ÀÖ½À´Ï´Ù.
|
Usage After
|
Å×½ºÆ®¸¦ ½ÇÇàÇÏ°í ³ ÈÄÀÇ RAM »ç¿ë.
|
Results
|
ÀÌ Ä®·³Àº Å×½ºÆ® ½ÇÇàÀÇ °á°ú¸¦ Ç¥½ÃÇÕ´Ï´Ù. ±×°ÍÀº Passed, Error, AssertionÀÌ µÉ °Í ÀÔ´Ï´Ù.
Total ¶óÀÎ ¶Ç´Â ¾î¶² º¹ÇÕ Å×½ºÆ®¿¡ ´ëÇÑ ¶óÀÎÀº Ç¥¸í(F), ¿¹¿Ü(E), ¼º°øÀûÀÎ Åë°ú(P) ·Î
¾ó¸¶³ª ¸¹Àº Å×½ºÆ®°¡ ½ÇÆÐÇߴ°¡¸¦ º¸¿©ÁÝ´Ï´Ù.
|
|
ÅÇ¿¡¼ ¶óÀÎÀ» ¼±ÅÃÇÏ¸é Æ®¸® º¸±â¿¡¼ »óÀÀÇÏ´Â ¿ä¼Ò¸¦ ¼±ÅÃÇÕ´Ï´Ù. ±×¸®°í ´ç½ÅÀº ÅÇ¿¡¼ Ä®·³À» ±×µéÀÇ Ä®·³ ¼ø¼¸¦
Ä¿½ºÅ͸¶ÀÌÁîÇϱâ À§ÇØ µå·¡±× & µå·ÓÇÒ ¼ö ÀÖ½À´Ï´Ù.
¹®¸Æ ¸Þ´º´Â Test tree view¿¡¼ ³ëµå¸¦ ¶Ç´Â Statistics ÅÇ¿¡¼ ¿ä¼Ò¸¦ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁý´Ï´Ù.
Run
"JUnit
Configuration"
|
above
ÀÇ ¼³¸íÀ» º¸½Ê½Ã¿À.
|
Debug
"JUnit
configuration"
|
above
ÀÇ ¼³¸íÀ» º¸½Ê½Ã¿À.
|
Jump
to Source
|
¸¸ÀÏ ¼±ÅõǸé, ¿¡µðÅÍ¿¡¼ Å×½ºÆ® ¼±¾ð ¶óÀο¡ ij·µÀ» ¹èÄ¡Çϰí ÀÖ´Â
¼±ÅÃµÈ Å×½ºÆ®¸¦ ³×ºñ°ÔÀÌÆ®Çϰí, ÃÊÁ¡À» °Å±â¿¡ ¿Å±é´Ï´Ù.
|
Show
Source
|
¸¸ÀÏ ¼±ÅõǸé, ¿¡µðÅÍ¿¡¼ Å×½ºÆ® ¼±¾ð ¶óÀο¡ ij·µÀ» ¹èÄ¡Çϰí ÀÖ´Â
¼±ÅÃµÈ Å×½ºÆ®¸¦ ³×ºñ°ÔÀÌÆ®ÇÕ´Ï´Ù.
±×·¯³ª ÃÊÁ¡Àº JUnit
Result Tool Window¿¡¼ À¯ÁöµË´Ï´Ù.
|
Select
in Tree
|
¿ä¼Ò´Â Statistics ÅÇ¿¡¼¸¸ ³ªÅ¸³³´Ï´Ù. ¸¸ÀÏ ¼±ÅõǸé, Test
tree view¿¡¼
¼±ÅÃµÈ °Í¿¡°Ô ºÎÇÕÇϰí ÀÖ´Â ¿ä¼Ò¸¦ ¼±ÅÃÇÕ´Ï´Ù.
|
Output ÅÇ ¹®¸Æ ¸Þ´º´Â ´ÙÀ½ÀÇ µÎ Ç׸ñÀ» Æ÷ÇÔÇÕ´Ï´Ù:
Clear
All
|
Ãâ·Â âÀ» Á¦°ÅÇÕ´Ï´Ù.
|
Copy
Content
|
Ãâ·ÂÀ» Ŭ¸³º¸µå¿¡ Ä«ÇÇÇϽʽÿÀ.
|
´ÙÀ½ ¼³¸íÀº ÀϺΠJava »ùÇÃÀ» ÀÌ¿ëÇÕ´Ï´Ù. ¿ÏÀü ÄÚµå´Â ¾Æ·¡¿¡ Á¦°øµË´Ï´Ù.
1.
ÄÝ·º¼ÇÀ» ºñ±³ÇÏ´Â °Í:
Ưº°ÇÑ »ç¿ë ÄÉÀ̽º°¡ ÀÖ½À´Ï´Ù: Difference
View ´Â ÄÝ·º¼ÇÀ» ºñ±³Çϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
´ç½ÅÀº ±×µéÀ» ¸ÖƼ¶óÀÎ ¹®ÀÚ¿·Î º¯È¯Çϰí assertEquals(String,
String)¸¦ ºÎ¸¦ ¼ö ÀÖ½À´Ï´Ù.
2.
Ưº°ÇÑ »ç¿ë ÄÉÀ̽º:
o»ç¿ë ÄÉÀ̽º- Å×½ºÆ® ÀڷḦ ÆÄÀÏ¿¡ ÀúÀåÇÏ´Â °Í.
°æ¿ì¸¦ Á¸ÁßÇÏÁö ¾ÊÀº String
Collection À» ¼ÒÆ®ÇÏ´Â »ùÇà Äڵ带 »ý¼ºÇϽʽÿÀ.
Å×½ºÆ® µ¥ÀÌÅÍ´Â ÆÄÀÏ, Å×½ºÆ®(ù ¹øÂ°´Â ¼ÒÆ®µÈ ÄÝ·º¼Ç, µÎ ¹øÂ°´Â ¼ÒÆÃ °á°ú)¿¡ µû¶ó µÎ ÆÄÀϷμ Á¦°øµË´Ï´Ù.
IDEA´Â Å×½ºÆ® ¸íÀ» Àý´ë ÆÄÀÏ °æ·Î·Î °£ÁÖÇÒ ¼ö ÀÖ½À´Ï´Ù.
ù ¹øÂ°·Î, ¿ì¸®´Â Å×½ºÆ® ÀڷḦ Æú´õ¿¡¼ ¹ß°ßÇϱâ À§ÇØ º¸Á¶ ¸Þ¼Òµå°¡ ÇÊ¿äÇÕ´Ï´Ù.
public class FSUtil {
public static final String IN_EXTENSION = ".in";
public static final String OUT_EXTENSION = ".out";
public static String[] findTests(File testData) {
File[] inputs = testData.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(IN_EXTENSION);
}
});
String[] names = new String[inputs.length];
for ( int i = 0; i < inputs.length; i++) { File inputFile = inputs[i]; String inputNameExt =
inputFile.getName(); String inputName = inputNameExt.substring(0, inputNameExt.length() –
IN_EXTENSION.length ()); names[i] = inputName; } return names;
}
}
»çÀü Á¤ÀÇÀÇ È®ÀåÀÌ ÀÖ´Â ÆÄÀÏÀº testData µð·ºÅ͸®¿¡¼ °Ë»öµË´Ï´Ù.
ÀÌÀüÀÇ ÄÚµå¿Í ÇÔ²² ¾ò¾îÁö´Â ÆÄÀϸíÀ» À§ÇØ, Å×½ºÆ®´Â »ý¼ºµÇ°í, TestSuite¿¡ Ãß°¡µË´Ï´Ù.
public class SortTestSuite extends TestSuite {
public SortTestSuite() {
super ("Sort tests"); // Suite node name in tree view
File testData = new File(".");
String[] tests = FSUtil.findTests(testData);
for ( int i = 0; i < tests.length; i++) { String test = tests[i]; addTest( new MyTestCase(test,
testData){});
}
}
public static Test suite() {
return new SortTestSuite();
}
}
MyTestCase´Â ÇϳªÀÇ Å×½ºÆ® ¸Þ¼Òµå¸¦ °¡Áö´Â Ŭ·¡½ºÀÔ´Ï´Ù:
public void test() throws IOException { // Test method to run
String[] result = new Sort().sort(readStrings(input));
assertEquals(toLines(readStrings(output)), toLines(result));
}
¿ì¸®´Â Sort Ŭ·¡½º¿¡ ÀÖ¾î¼ÀÇ sort() ¸Þ¼Òµå¸¦ Å×½ºÆ®Çϰí ÀÖ½À´Ï´Ù.
public class Sort {
public String[] sort(String[] strings) { //dummy sort method
Arrays.sort(strings);
return strings;
}
}
inputÀº ¼ÒÆ®µÈ ¹®ÀÚ¿À» Æ÷ÇÔÇϰí ÀÖ´Â ÇʵåÀÔ´Ï´Ù, output Àº ¿¹»óµÇ´Â ¼ÒÆÃ °á°úÀÔ´Ï´Ù.
readStrings() ´Â ÆÄÀϷκÎÅÍÀÇ ¹®ÀÚ¿À» Àаí, ¹®ÀÚ¿ ¹è¿À» »ý»êÇÕ´Ï´Ù.
toLines()´Â ¹®ÀÚ¿ ¹è¿À» ¸ÖƼ¶óÀÎ ¹®ÀÚ¿·Î ¹Ù²ß´Ï´Ù.
public abstract class MyTestCase extends TestCase {
private final String name;
private final File input;
private final File output;
public MyTestCase(String name, File parentDirectory) {
super ("test"); // Passing test method name
this.input = new File(parentDirectory, name + FSUtil.IN_EXTENSION);
this.output = new File(parentDirectory, name + FSUtil.OUT_EXTENSION);
try {
this.name = this.input.getCanonicalPath();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void test() throws IOException { // Test method to run
String[] result = new Sort().sort(readStrings(input));
assertEquals(toLines(readStrings(output)), toLines(result));
}
private String toLines(String[] strings) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < strings.length; i++) { String string = strings[i]; buffer.append(string);
buffer.append(System.getProperty("line.separator")); } return buffer.toString();
}
private String[] readStrings(File file) throws IOException {
BufferedReader reader = new BufferedReader( new FileReader(file));
String line;
ArrayList lines = new ArrayList();
while ((line = reader.readLine()) != null) {
lines.add(line);
}
return (String[])lines.toArray( new String[lines.size()]);
}
public String getName() { // Test representation in tree view
try {
return input.getCanonicalPath();
} catch (IOException e) {
return super.getName ();
}
}
}

|
Result tree view ÀÇ ³ëµå¸íÀº º¯°æµÉ ¼ö ÀÖ°í, getName() ÄÝÀÇ Ãâ·ÂÀ¸·Î¼ Ç¥½ÃµË´Ï´Ù.
|
getName() ¸Þ¼Òµå´Â ÃÖÃÊÀÇ ÀÔ·Â µ¥ÀÌÅÍ¿Í ÇÔ²² ÆÄÀÏ¿¡ Áï ¼ÒÆ®µÈ ÄÝ·º¼ÇÀ¸·Î Àý´ë °æ·Î¸¦ ¸®ÅÏÇϱâ À§ÇØ
¿À¹ö¶óÀÌµå µË´Ï´Ù.
o
»ç¿ë ÄÉÀ̽º – °í¼Ó Å×½ºÆ® »ý¼º
¸¸ÀÏ Å×½ºÆ® ¼öÇà/µð¹ö±ëÀÇ ½ÃÀÛ¿¡¼ ¼±¾ðµÈ °Íº¸´Ù ´õ ¸¹Àº Å×½ºÆ®°¡ ÀÖ´Ù¸é IDEA´Â Á¤È®ÇÏ°Ô ÇÁ·Î¼¼½º ÇÕ´Ï´Ù.
public class SortTest implements Test {
public int countTestCases() {
return 0;
}
public void run(TestResult testResult) {
File testData = new File(".");
String[] names = FSUtil.findTests(testData);
for ( int i = 0; i < names.length; i++) { String name = names[i]; new MyTestCase(name, testData){}.run(testResult);
}
}
public static Test suite() {
return new SortTest();
}
}
countTestCases()´Â Á¦·Î¸¦ ¸®ÅÏÇÕ´Ï´Ù ¿Ö³ÄÇÏ¸é ¿ì¸®´Â ¾ó¸¶³ª ¸¹Àº µ¥½ºÆ® ÆÄÀÏÀÌ ¹ß°ßµÇ´ÂÁö, ¾ó¸¶³ª ¸¹Àº Å×½ºÆ®°¡ ½ÇÇàµÇ´ÂÁö¿¡ ´ëÇØ °ü½ÉÀ» µÎÁö ¾Ê±â ¶§¹® ÀÔ´Ï´Ù.
run() Àº ½ÇÁ¦·Î Å×½ºÆ®¸¦ ½ºÄ³´×, »ý¼ºÇÏ°í ½ÃÀÛ ÇÕ´Ï´Ù.
ù ¹øÂ°·Î, ±×°ÍÀÌ ¼±¾ðµÇ¾ú´ø °Íº¸´Ù Å×½ºÆ®¸¦ ½ÇÇàÇÏ´Â ½ÇÁ¦ ·®Àº ³ô½À´Ï´Ù. µû¶ó¼, IDEA´Â ¾ó¸¶³ª ¸¹Àº Å×½ºÆ®°¡ Âø¼öµÇ¾ú´øÁö °¡¸£Ä¨´Ï´Ù. ±×·¯³ª ¸¹Àº Å×½ºÆ®°¡ Á¸ÀçÇß´ø ¸Þ¼Òµå´Â óÀ½¿¡ ¼±¾ðÇÏÁö ¾Ê¾Ò½À´Ï´Ù. µÎ ¹øÂ°·Î, Å×½ºÆ®´Â ±×µéÀÇ Å¬·¡½º¿¡ µû¶ó ¸ðÀ¸°Ô µË´Ï´Ù.
|